package config

import (
	"os"

	"gopkg.in/yaml.v3"
)

// Config 配置结构
type Config struct {
	Server struct {
		Port int    `yaml:"port"`
		Mode string `yaml:"mode"`
	} `yaml:"server"`
	Wechat struct {
		CorpID         string `yaml:"corp_id"`
		CorpSecret     string `yaml:"corp_secret"`
		MchID          string `yaml:"mch_id"`
		Token          string `yaml:"token"`
		EncodingAESKey string `yaml:"encoding_aes_key"`
		APIKey         string `yaml:"api_key"`
	} `yaml:"wechat"`
}

// GlobalConfig 全局配置实例
var GlobalConfig Config

// Init 初始化配置
func Init() error {
	// 读取配置文件
	file, err := os.Open("config/config.yaml")
	if err != nil {
		return err
	}
	defer file.Close()

	// 解析配置
	decoder := yaml.NewDecoder(file)
	if err := decoder.Decode(&GlobalConfig); err != nil {
		return err
	}

	return nil
}
